This talk was recorded at NDC Techtown in Kongsberg, Norway. #ndctechtown #ndcconferences #cplusplus #developer #softwaredeveloper Attend the next NDC conference near you: https://ndcconferences.com https://ndctechtown.com/ Subscribe to our YouTube channel and learn every day: /@NDC Design patterns are everywhere, as they are the key to managing dependencies between software entities. But despite their fundamental importance, there are some common misconceptions about them, in particular about several of the most often used design patterns: Factory functions are frequently mistaken for the Factory Method design pattern The Builder design pattern is often associated with the implementation of constructors The Bridge and Strategy design patterns are regularly mixed-up The modern form of the Visitor design pattern, std::variant, is often considered a replacement of virtual functions (Bonus) The Decorator design pattern is sometimes mistaken as the Chain of Responsibility design pattern In this talk I'll shed some light on these misconceptions and explain why they obstruct the proper communication about software design and architecture. Additionally, I’ll address the biggest misconception of all: design patterns are a tool for object-oriented programming.